//
//

#ifndef _APPLICATION_DRAW_
#define _APPLICATION_DRAW_

#include "draw.h"

//
//////////////////////////////////////////////////////////////////////////
class aplicationdraw :
  public drawGRA
{
public:
  aplicationdraw(void);
  aplicationdraw(void *);
  ~aplicationdraw(void);

  void setCanvas (void *);

  void begin ();
  void addVertex (double x, double y, double z);
  void end ();

  void PolyLine (int n, double *p);
  void PolyMark (int n, double *p);
  void FillArea (int n, double *p);
  void text     (double x, double y, double z, char *s);

  void SetFillIntStyle (int style);
  void SetHatchStyle   (int style);
  void SetLineStyle    (int s);
  void SetLineWidth    (double w);
  void SetMarkType     (int t);
  void SetMarkSize     (double size);

  void SetLineColor (long int c);
  void SetMarkColor (long int c);
  void SetFillColor (long int c);
  void SetTextColor (long int c);

  void setXor (int _xor) {};

private:

  void decodeColor (long int c,  double *r, double *g, double *b );
  void wcCanvas    (double xwc, double ywc, double zwc,
                    double *xdc, double *ydc, double*zdc);


  void *painter;

  int  fill_style;      // current fill interior style
  int  gra_mark_type;   // current mark style
  int  gra_mark_size;   // current mark size

  int font_list_base; 


};

#endif
